大家好,我是一名菜鳥工程師,Chris,今天來到第 30 天,Git 指令
這邊以 Mac 電腦來說明。首先要安裝 homebrew,再透過 homebrew 安裝 Git。具體方法請參考homebrew 文件,這邊就不詳細說明了
https://brew.sh/
- 設置使用者的名稱和電子郵件:
git config --global user.name "你的名稱"
git config --global user.email "你的電子郵件"
- 確認 Git 的設定:確保它們已經正確設置完成:
git config --list
- 初始化一個新的 Git 儲存庫:如果要開始做一個新專案,可以使用指令並初始化一個新的 Git 儲存庫:
git init
- 可以複製現有的 Git 儲存庫:它已經存在在遠端的儲存庫
git clone 遠端儲存庫的URL
- 顯示指定檔案的每一行的詳細資訊,包括最後一次修改的提交信息、作者和修改時間:
git blame 檔案名稱
- 重設到前一次提交(取消上一次的提交,但保留更改在工作目錄和暫存區):
git reset HEAD^
- 重設到前兩次提交(取消上兩次的提交,但保留更改在工作目錄和暫存區):
git reset HEAD^^
- 重設到前50次提交(取消前50次的提交,但保留更改在工作目錄和暫存區):
git reset HEAD~50
- 這個模式是預設的。會取消上一次的提交,並將更改移回到工作目錄:
git reset --mixed HEAD^
- 這個模式會取消上一次的提交,但保留更改在暫存區中:
git reset --soft HEAD^
- (要小心使用) 這個模式會取消上一次的提交,同時刪除工作目錄中的更改:
git reset --hard HEAD^
- 檢查目前代碼的狀態:
git status
- 將目前更改的項目添加到暫存區:
git add 檔案名稱 # 指定某個檔案加到暫存區
git add . # 將所有更改的檔案加到暫存區
git add --all # 將所有更改的檔案加到暫存區
git add -A # 將所有更改的檔案加到暫存區
- 提交更改:
git commit --message "提交的訊息"
git commit -m "提交的訊息"
- 將目錄中的更改回復到和最後一次提交相同的狀態。它可以用來取消未提交的更改:
git restore 檔案名稱 # 恢復特定檔案到最後提交的狀態
- 使用 .
可以一次性的恢復所有檔案:
git restore . # 恢復所有檔案到最後提交的狀態
- 查看提交紀錄歷史:
git log
- 列出所有分支:
git branch
- 建立一個新的分支:
git branch 分支名稱
- 刪除分支:
git branch -d 分支名稱
- 強制刪除分支:
git branch -D 分支名稱
- 切換分支或恢復文件:
git checkout 分支名稱
- 切換分支:
git switch 分支名稱
- 切換到提交名稱:
git switch 提交名稱 --detach
- 合併分支:
git merge 合併的分支名稱
- 合併分支,但強制不使用快進合併(no fast-forward),保留分支的歷史記錄:
git merge 合併的分支名稱 --no-ff
- 合併分支並提供一個自訂的合併訊息:
git merge feature -m "合併分支的訊息"
- 將當前分支的提交移到設定的分支
的基礎上,以 main 為範例
git rebase main
- 輕鬆返回到 rebase 前的狀態
git reset ORIG_HEAD
merge
會將一個分支的更改合併到另一個分支的操作git checkout 分支A
git merge 分支B
git add 解决的檔案
git commit -m "解决衝突的說明"
rebase
會將一個分支的更改重新基於另一個分支的操作git checkout 分支A
git rebase 分支B
git add 解决的檔案
# 接著,可以選擇自己希望的方式執行:
git rebase --continue # 接受已解决的衝突
git rebase --skip # 跳過目前衝突,但這會遺失衝突的更改
git rebase --abort # 放棄變基操作,恢復到變基前的狀態
git checkout
可用於手動選擇特定版本的檔案--ours
表示選擇本地版本(目前分支的版本)--theirs
表示選擇另一分支的版本git checkout --ours img.jpg # 選擇本地版本(當前分支的版本)的img.jpg
git checkout --theirs img.jpg # 選擇另一分支的版本的img.jpg
- 將本地的 Git 更改推到(上傳)到遠端 Git 儲存庫,讓遠端儲存庫與本地的儲存庫同步:
git push origin 分支名
- 將遠端 Git 儲存庫拉取(下載)最新的更改到本地的儲存庫,讓本地代碼與遠端儲存庫同步:
git pull origin 分支名
總結 : 以上就是關於 Git 指令的說明
很開心自己能參加 IT 鐵人賽 30 天的技術分享,能夠持續不斷的發文,不僅提升自己的技術,也能從中學習到很多知識,這是個難能可貴的機會與挑戰,我達成了呢!!
之後我也會養成發文的習慣,當遇到不熟悉的技術或疑問時,只要透過寫文章,就能進而提升自己,並運用在未來的專案中。
hi, 我是一名工程師,Chris,在前往工程師的路上一起並肩同行吧:> 有任何問題都歡迎提出,謝謝指教~~